A chart or graph is described in Wikipedia as a type of information graphic or graphic organizer that represents tabular numeric data and/or functions. Charts are often used in an attempt to make it easier to understand large quantities of data and the relationship between different parts of the data. Charts can usually be read more quickly than the raw data that they come from. They are used in a wide variety of fields, and can be created by hand (often on graph paper) or by general purpose computers or specific computers using various different charting applications.
Traditional charts use well established and often poorly implemented ways of representing data. Many tools exist to help the user construct very sophisticated representations of data but that sophistication typically results in less meaningful charts. Embodiments of the present invention aim to overcome this problem.
It is known to use charting wizards such as those that are available in Excel and various other systems such as those provided by, for example, IBM. In addition there are multiple Business Intelligence (BI) tools available to users to enable users to analyze data in an attempt to create meaningful feedback. However, as the amount of data increases, so does the complexity of the visual representations created by the analysis of the data. These complex representations can end up swamping parts of the visual representation that are most required and relevant to an end user.
One known method of visualizing data is the heatmap. A heatmap identifies the values of individual data points by allocating a specific color based on the data point value. For example, red may indicate that the data point value is high, and blue may indicate that the data point value is low. The color spectrum in between red and blue may then be used to indicate the interim values for relevant data points. The heatmap graphic is particularly useful for showing the position and intensity of certain data values with respect to other data values and within a defined environment, such as a geographical area, temporal period or other environment.
It is known to create heatmaps using an inverse distance weighted (IDW) formula, such as a bell shaped curve. However, these methods are extremely complex and can cause artefacts, and so can be particularly problematic. It is also known to use a cubic spline method to create a heatmap, however this method is particularly processor (CPU) intensive.
The heatmaps produced by the above described methods, such as that shown in FIG. 1, can produce quite garish and intense maps that tend to confuse the eye of the reader due its non-organic appearance.
In particular, the heatmap of FIG. 1 is produced by rendering circles around a specific data point, where the color and diameter of the circle is based on a variable associated with the data point. Smaller diameter circles are used to represent smaller data point values and larger diameter circles are used to represent larger data point values. Further, the larger the circle (or data point value) the “hotter” the color used to represent the circle. For example, largest values may be rendered using large circles in the color red, whereas smallest values may be rendered using small circles colored blue. At points where the circles overlap, the circle associated with the largest data point value has priority over the smaller circles and the color for the larger circle is shown in the overlap region. A first problem associated with this method of rendering the overlapped region is that only the values of data points representing the largest values are represented in the overlap regions and an accurate representation of the overlap regions is not provided. For example, two data points that are close to each other which represent a maximum value will be rendered using the same color as three or four (or more) data points that are close to each other which represent the same maximum value. A further problem occurs when data points representing smaller values are positioned next to or close to data points representing larger values as the rendered larger value data points obscure the rendered smaller value data points. This can therefore result in a loss of information being conveyed to the user as minimal data values may be considered as a very important part of the data analysis of the data set.
Prior known methods typically use spread functions, such as bell shaped curves, to calculate interpolation values for each point on a heatmap. These spread functions tail off over a long distance (graphically) and so may require each point to take into account all other data points, even if positioned a large graphical distance away form the data point being calculated. Therefore, high levels of computing are required to calculate all values on the heatmap as all points influence all other points.
The present invention aims to overcome, or at least alleviate, some or all of the mentioned problems, or to at least provide the public with a useful choice.